#pragma once

#include "IApplication.hpp"
#include "GfxConfiguration.hpp"

namespace My{
    class BaseApplication : implements IApplication{
        public: 
        BaseApplication(GfxConfiguration& cfg);
            virtual int Initialize() override;
            virtual void Finalize() override;
            virtual void Tick() override;

            virtual bool IsQuit() override;
        protected:
            static bool m_bQuit;
            GfxConfiguration m_Config;
        private:
            // hide the default construct to enforce a configuration
            BaseApplication() {};
    };
}